<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_计算属性实现</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
</head>

<body>
    <div id="root">
        <!-- v-model 双向绑定 -->
        姓：<input type="text" v-model="firstName"><br>
        名：<input type="text" v-model="lastName"><br>
        <!-- slice 截取多少位 -->
        全名：<span>{{fullName}}</span>
    </div>

    <script type="text/javascript">
        const vm = new Vue({
            el: '#root',
            data: {
                firstName: '张',
                lastName: '三'
            },
            computed: {
                // 完整写法
                // fullName: {
                //     // get作用：当有人调用fullName时，get就会给调用，且返回值作为fullName的值
                //     // get调用：1.初次读取fullName时；2.所依赖的数据发生变化时
                //     get() {
                //         console.log("fullName的get被调用")
                //         // this 是vm
                //         return this.firstName + '-' + this.lastName
                //     },
                //     // set调用：当fullName被修改时
                //     set(value) {
                //         console.log(value)
                //         const arr = value.split('-')
                //         this.firstName = arr[0]
                //         this.lastName = arr[1]

                //     }
                // }
                
                // 简写方式，只考虑读取，不考虑修改时才可使用
                fullName() {
                    console.log("fullName的get被调用")
                    // this 是vm
                    return this.firstName + '-' + this.lastName
                }
            }

        })

    </script>



</body>

</html>